home *** CD-ROM | disk | FTP | other *** search
/ Visual Cafe 3 / Visual Cafe 3.ISO / Vcafe / Main.bin / Options.java < prev    next >
Text File  |  1998-10-16  |  10KB  |  516 lines

  1. package com.symantec.itools.tools.archive;
  2.  
  3.  
  4. import java.io.IOException;
  5. import java.util.Enumeration;
  6. import java.util.Vector;
  7. import com.symantec.itools.io.FileSystem;
  8. import com.symantec.itools.lang.DynamicClassException;
  9. import com.symantec.itools.lang.AccessiblePlatform;
  10. import com.symantec.itools.util.Properties;
  11.  
  12.  
  13. /**
  14.  * @author Symantec Internet Tools Division
  15.  * @version 1.0
  16.  * @since VCafe 3.0
  17.  */
  18.  
  19. public final class Options
  20. {
  21.     private String        classpath;
  22.     private String        type;
  23.     private String        outputLocation;
  24.     private String        tempDir;
  25.     private String        signer;
  26.     private String        signerArgs;
  27.     private String        archiverArgs;
  28.     private boolean       verbose;
  29.     private boolean       overwrite;
  30.     private boolean       debug;
  31.     private String        debugLog;
  32.     private String[]      files;
  33.     private String[]      entries;
  34.     private TypeArchiver  archiver;
  35.     private TypeValidator validator;
  36.     private TypeSigning   sign;
  37.     private Properties[]  types;
  38.     private Properties[]  validators;
  39.     private Properties[]  signers;
  40.     private String        microsoftTools;
  41. //    private String        netscapeTools;
  42.     private String        sunTools;
  43.     private Vector        listeners;
  44.  
  45.     {
  46.         files     = new String[0];
  47.         entries   = new String[0];
  48.         listeners = new Vector();
  49.     }
  50.  
  51.     public Options()
  52.         throws IOException
  53.     {
  54.         Properties properties;
  55.  
  56.         if(AccessiblePlatform.getJavaVersion() == null)
  57.         {
  58.             throw new IOException("Platform doesn't know about the Java version");
  59.         }
  60.  
  61.         properties = new Properties("/com/symantec/itools/tools/archive/Archiver" +
  62.                                     AccessiblePlatform.getJavaVersion() + ".properties");
  63.         classpath  = System.getProperty("java.class.path");
  64.         validators = properties.getPropertiesList("validators");
  65.         types      = properties.getPropertiesList("archivers");
  66.         signers    = properties.getPropertiesList("signers");
  67.     }
  68.  
  69.     /**
  70.      * @param t TODO
  71.      * @since VCafe 3.0
  72.      */
  73.  
  74.     public final void setType(String t)
  75.     {
  76.         type = t.toLowerCase();
  77.     }
  78.  
  79.     /**
  80.      * @param location TODO
  81.      * @since VCafe 3.0
  82.      */
  83.  
  84.     public final void setOutputLocation(String location)
  85.     {
  86.         outputLocation = location;
  87.     }
  88.  
  89.     /**
  90.      * @param dir TODO
  91.      * @since VCafe 3.0
  92.      */
  93.  
  94.     public final void setTempDir(String dir)
  95.     {
  96.         tempDir = FileSystem.getCanonicalPath(dir, true);
  97.     }
  98.  
  99.     /**
  100.      * @param f TODO
  101.      * @since VCafe 3.0
  102.      */
  103.  
  104.     public final void setVerbose(boolean f)
  105.     {
  106.         verbose = f;
  107.     }
  108.  
  109.     /**
  110.      * @since VCafe 3.0
  111.      */
  112.  
  113.     public final String getType()
  114.     {
  115.         return (type);
  116.     }
  117.  
  118.     /**
  119.      * @since VCafe 3.0
  120.      */
  121.  
  122.     public final String getOutputLocation()
  123.     {
  124.         return (outputLocation);
  125.     }
  126.  
  127.     /**
  128.      * @since VCafe 3.0
  129.      */
  130.  
  131.     public final String getTempDir()
  132.     {
  133.         return (tempDir);
  134.     }
  135.  
  136.     /**
  137.      * @since VCafe 3.0
  138.      */
  139.  
  140.     public final boolean isVerbose()
  141.     {
  142.         return (verbose);
  143.     }
  144.  
  145.     /**
  146.      * @since VCafe 3.0
  147.      */
  148.  
  149.     public final boolean isDebug()
  150.     {
  151.         return (debug);
  152.     }
  153.  
  154.     /**
  155.      * @since VCafe 3.0
  156.      */
  157.     public final boolean isSigning()
  158.     {
  159.         if(signer == null)
  160.         {
  161.             signer = "";
  162.         }
  163.         
  164.         return (!(signer.equals("")));
  165.     }
  166.  
  167.     /**
  168.      * @param array TODO
  169.      * @since VCafe 3.0
  170.      */
  171.  
  172.     public final void setFiles(String[] array)
  173.     {
  174.         files = array;
  175.     }
  176.  
  177.     /**
  178.      * @param array TODO
  179.      * @since VCafe 3.0
  180.      */
  181.  
  182.     public final void setEntries(String[] array)
  183.     {
  184.         entries = array;
  185.     }
  186.  
  187.     /**
  188.      * @since VCafe 3.0
  189.      */
  190.  
  191.     public final String[] getFiles()
  192.     {
  193.         return (files);
  194.     }
  195.  
  196.     /**
  197.      * @since VCafe 3.0
  198.      */
  199.  
  200.     public final String[] getEntries()
  201.     {
  202.         return (entries);
  203.     }
  204.  
  205.     /**
  206.      * @param cp TODO
  207.      * @since VCafe 3.0
  208.      */
  209.  
  210.     public final void setClasspath(String cp)
  211.     {
  212.         classpath = cp;
  213.     }
  214.  
  215.     /**
  216.      * @since VCafe 3.0
  217.      */
  218.  
  219.     public final String getClasspath()
  220.     {
  221.         return (classpath);
  222.     }
  223.  
  224.     /**
  225.      * @param f TODO
  226.      * @since VCafe 3.0
  227.      */
  228.  
  229.     public final void setDebug(boolean f)
  230.     {
  231.         debug = f;
  232.     }
  233.  
  234.     /**
  235.      * @since VCafe 3.0
  236.      */
  237.  
  238.     public final boolean getDebug()
  239.     {
  240.         return (debug);
  241.     }
  242.  
  243.     /**
  244.      * @param log TODO
  245.      * @since VCafe 3.0
  246.      */
  247.  
  248.     public final void setDebugLog(String log)
  249.     {
  250.         debugLog = log;
  251.     }
  252.  
  253.     /**
  254.      * @since VCafe 3.0
  255.      */
  256.  
  257.     public final String getDebugLog()
  258.     {
  259.         return (debugLog);
  260.     }
  261.  
  262.     /**
  263.      * @exception com.symantec.itools.lang.DynamicClassException
  264.      * @since VCafe 3.0
  265.      */
  266.  
  267.     public final TypeValidator getValidator()
  268.         throws DynamicClassException
  269.     {
  270.         Class[]  argTypes;
  271.         Object[] argValues;
  272.  
  273.         if(archiver != null)
  274.         {
  275.             return (validator);
  276.         }
  277.  
  278.         argTypes     = new Class[1];
  279.         argTypes[0]  = Options.class;
  280.         argValues    = new Object[1];
  281.         argValues[0] = this;
  282.  
  283.         for(int i = 0; i < validators.length; i++)
  284.         {
  285.             if(validators[i].get("name").equals(type))
  286.             {
  287.                 validator = (TypeValidator)validators[i].getNewInstanceOfClass("class", argTypes, argValues);
  288.  
  289.                 return (validator);
  290.             }
  291.         }
  292.  
  293.         return (null);
  294.     }
  295.  
  296.     /**
  297.      * @exception com.symantec.itools.lang.DynamicClassException
  298.      * @since VCafe 3.0
  299.      */
  300.  
  301.     public final TypeArchiver getArchiver()
  302.         throws DynamicClassException
  303.     {
  304.         Class[]  argTypes;
  305.         Object[] argValues;
  306.  
  307.         if(archiver != null)
  308.         {
  309.             return (archiver);
  310.         }
  311.  
  312.         argTypes     = new Class[1];
  313.         argTypes[0]  = Options.class;
  314.         argValues    = new Object[1];
  315.         argValues[0] = this;
  316.  
  317.         for(int i = 0; i < types.length; i++)
  318.         {
  319.             if(types[i].get("name").equals(type))
  320.             {
  321.                 archiver = (TypeArchiver)types[i].getNewInstanceOfClass("class", argTypes, argValues);
  322.  
  323.                 return (archiver);
  324.             }
  325.         }
  326.  
  327.         return (null);
  328.     }
  329.  
  330.     /**
  331.      * @exception com.symantec.itools.lang.DynamicClassException
  332.      * @since VCafe 3.0
  333.      */
  334.  
  335.     public final TypeSigning getSign()
  336.         throws DynamicClassException
  337.     {
  338.         Class[]  argTypes;
  339.         Object[] argValues;
  340.  
  341.         if(sign != null)
  342.         {
  343.             return (sign);
  344.         }
  345.  
  346.         argTypes     = new Class[1];
  347.         argTypes[0]  = Options.class;
  348.         argValues    = new Object[1];
  349.         argValues[0] = this;
  350.  
  351.         for(int i = 0; i < signers.length; i++)
  352.         {
  353.             if(signers[i].get("name").equals(signer))
  354.             {
  355.                 sign = (TypeSigning)signers[i].getNewInstanceOfClass("class", argTypes, argValues);
  356.  
  357.                 return (sign);
  358.             }
  359.         }
  360.  
  361.         return (null);
  362.     }
  363.  
  364.     /**
  365.      * @param f TODO
  366.      * @since VCafe 3.0
  367.      */
  368.  
  369.     public final void setOverwrite(boolean f)
  370.     {
  371.         overwrite = f;
  372.     }
  373.  
  374.     /**
  375.      * @since VCafe 3.0
  376.      */
  377.  
  378.     public final boolean isOverwrite()
  379.     {
  380.         return (overwrite);
  381.     }
  382.  
  383.     /**
  384.      * @param str TODO
  385.      * @since VCafe 3.0
  386.      */
  387.  
  388.     public final void setSigner(String str)
  389.     {
  390.         signer = str;
  391.     }
  392.  
  393.     /**
  394.      * @param str TODO
  395.      * @since VCafe 3.0
  396.      */
  397.     public final void setSignerArgs(String args)
  398.     {
  399.         signerArgs = args;
  400.     }
  401.  
  402.     /**
  403.      * @param str TODO
  404.      * @since VCafe 3.0
  405.      */
  406.     public final void setArchiverArgs(String args)
  407.     {
  408.         archiverArgs = args;
  409.     }
  410.  
  411.     /**
  412.      * @since VCafe 3.0
  413.      */
  414.  
  415.     public final String getSigner()
  416.     {
  417.         if(signer == null)
  418.         {
  419.             signer = "";
  420.         }
  421.         
  422.         return (signer);
  423.     }
  424.  
  425.     /**
  426.      * @since VCafe 3.0
  427.      */
  428.  
  429.     public final String getSignerArgs()
  430.     {
  431.         return (signerArgs);
  432.     }
  433.  
  434.     /**
  435.      * @since VCafe 3.0
  436.      */
  437.  
  438.     public final String getArchiverArgs()
  439.     {
  440.         return (archiverArgs);
  441.     }
  442.  
  443.     /**
  444.      * @param str TODO
  445.      * @since VCafe 3.0
  446.      */
  447.  
  448.     public final void setMicrosoftTools(String str)
  449.     {
  450.         microsoftTools = str;
  451.     }
  452.  
  453.     /**
  454.      * @since VCafe 3.0
  455.      */
  456.  
  457.     public final String getMicrosoftTools()
  458.     {
  459.         return (microsoftTools);
  460.     }
  461.  
  462. //    /**
  463. //     * @param str TODO
  464. //     * @since VCafe 3.0
  465. //     */
  466. //    public final void setNetscapeTools(String str)
  467. //    {
  468. //        netscapeTools = str;
  469. //    }
  470.  
  471. //    /**
  472. //     * @since VCafe 3.0
  473. //     */
  474. //    public final String getNetscapeTools()
  475. //    {
  476. //        return (netscapeTools);
  477. //    }
  478.  
  479.     /**
  480.      * @param str TODO
  481.      * @since VCafe 3.0
  482.      */
  483.  
  484.     public final void setSunTools(String str)
  485.     {
  486.         sunTools = str;
  487.     }
  488.  
  489.     /**
  490.      * @since VCafe 3.0
  491.      */
  492.  
  493.     public final String getSunTools()
  494.     {
  495.         return (sunTools);
  496.     }
  497.  
  498.     /**
  499.      * @param listener TODO
  500.      * @since VCafe 3.0
  501.      */
  502.  
  503.     public void addArchiverListener(ArchiverListener listener)
  504.     {
  505.         listeners.addElement(listener);
  506.     }
  507.  
  508.     /**
  509.      * @since VCafe 3.0
  510.      */
  511.  
  512.     public Enumeration getListeners()
  513.     {
  514.         return (listeners.elements());
  515.     }
  516. }